Data Annotations ব্যবহার করে ভ্যালিডেশন

Web Development - এএসপি ডট (ASP.Net) - ফর্ম হ্যান্ডলিং এবং ভ্যালিডেশন |
1
1

Data Annotations হল ASP.Net এ একটি শক্তিশালী ভ্যালিডেশন প্রযুক্তি, যা Model ক্লাসের প্রপার্টির উপর প্রয়োগ করা হয়। এটি UI এবং Controller স্তরে ডেটা ভ্যালিডেশন করতে সাহায্য করে। Data Annotations মূলত .NET Framework এর একটি অংশ এবং Entity Framework সহ ডেটাবেস এবং UI মডেলগুলিতে ব্যবহৃত হয়।

এটি Model-Driven Validation বা Server-Side Validation হিসাবে পরিচিত, যেখানে ডেটা ভ্যালিডেশন ক্লায়েন্টের পক্ষ থেকে না হয়ে, সার্ভারের পক্ষ থেকে হয়।


Data Annotations এর মাধ্যমে ভ্যালিডেশন

Data Annotations কনস্ট্রেইন্ট বা নিয়মাবলী ব্যবহারের মাধ্যমে মডেল ক্লাসের প্রপার্টি ভ্যালিডেশন করতে সাহায্য করে। এটি বিভিন্ন ধরনের ভ্যালিডেশন অ্যাট্রিবিউট প্রদান করে, যেগুলো ডেটার গুণগত মান নিশ্চিত করতে ব্যবহৃত হয়।

এটি মূলত System.ComponentModel.DataAnnotations নেমস্পেসে অন্তর্ভুক্ত থাকে।


Data Annotations এর কিছু জনপ্রিয় অ্যাট্রিবিউট

১. [Required]

এই অ্যাট্রিবিউটটি ব্যবহার করা হয়, যদি কোনো ফিল্ডটি অবশ্যই পূর্ণ করতে হয়। অর্থাৎ, ডেটা সাবমিট করার সময় এটি ফাঁকা রাখা যাবে না।

public class User
{
    [Required(ErrorMessage = "Name is required.")]
    public string Name { get; set; }
}

এখানে, Name ফিল্ডটি অবশ্যই পূর্ণ করতে হবে, অন্যথায় একটি এরর মেসেজ দেখাবে।

২. [StringLength]

এটি ব্যবহার করা হয় কোনো স্ট্রিং প্রপার্টির সর্বোচ্চ এবং সর্বনিম্ন দৈর্ঘ্য নির্ধারণ করতে।

public class User
{
    [StringLength(50, MinimumLength = 5, ErrorMessage = "Username must be between 5 and 50 characters.")]
    public string Username { get; set; }
}

এখানে, Username প্রপার্টির দৈর্ঘ্য ৫ থেকে ৫০ ক্যারেক্টারের মধ্যে থাকতে হবে।

৩. [Range]

এই অ্যাট্রিবিউটটি সংখ্যা, তারিখ বা অন্য কোনো মানের জন্য সীমা নির্ধারণ করতে ব্যবহৃত হয়।

public class Product
{
    [Range(1, 1000, ErrorMessage = "Price must be between 1 and 1000.")]
    public decimal Price { get; set; }
}

এখানে, Price ১ থেকে ১০০০ এর মধ্যে থাকতে হবে।

৪. [EmailAddress]

এটি একটি বৈধ ইমেইল ঠিকানা যাচাই করতে ব্যবহৃত হয়।

public class User
{
    [EmailAddress(ErrorMessage = "Please enter a valid email address.")]
    public string Email { get; set; }
}

এখানে, Email প্রপার্টি একটি বৈধ ইমেইল ঠিকানা হওয়া উচিত।

৫. [Compare]

এই অ্যাট্রিবিউটটি দুটি প্রপার্টি তুলনা করার জন্য ব্যবহৃত হয়। সাধারণত এটি পাসওয়ার্ড এবং কনফার্ম পাসওয়ার্ড ক্ষেত্রের জন্য ব্যবহার করা হয়।

public class User
{
    public string Password { get; set; }
    
    [Compare("Password", ErrorMessage = "Passwords do not match.")]
    public string ConfirmPassword { get; set; }
}

এখানে, Password এবং ConfirmPassword দুটি প্রপার্টি তুলনা করা হবে এবং যদি তারা মেলে না, তাহলে একটি এরর মেসেজ দেখাবে।

৬. [RegularExpression]

এই অ্যাট্রিবিউটটি একটি নির্দিষ্ট প্যাটার্ন অনুসারে ডেটা যাচাই করার জন্য ব্যবহার করা হয়। এটি সাধারণত ফরম্যাট ভ্যালিডেশন জন্য ব্যবহৃত হয় (যেমন: ফোন নম্বর, ZIP কোড ইত্যাদি)।

public class User
{
    [RegularExpression(@"^\d{10}$", ErrorMessage = "Phone number must be 10 digits.")]
    public string PhoneNumber { get; set; }
}

এখানে, PhoneNumber প্রপার্টি অবশ্যই ১০ ডিজিটের হতে হবে।


ASP.Net MVC তে Data Annotations ভ্যালিডেশন

ASP.Net MVC অ্যাপ্লিকেশনগুলিতে Data Annotations ব্যবহার করে ডেটা ভ্যালিডেশন সহজে করা যায়। এই ভ্যালিডেশন প্রপার্টি Model-এ সেট করা হয় এবং তারপর Controller বা View তে যাচাই করা হয়।

উদাহরণ:

  1. Model Class:
public class User
{
    [Required(ErrorMessage = "Name is required.")]
    [StringLength(50, MinimumLength = 5, ErrorMessage = "Username must be between 5 and 50 characters.")]
    public string Username { get; set; }

    [EmailAddress(ErrorMessage = "Please enter a valid email address.")]
    public string Email { get; set; }

    [Required]
    [Compare("Password", ErrorMessage = "Passwords do not match.")]
    public string ConfirmPassword { get; set; }

    public string Password { get; set; }
}
  1. Controller:
public class UserController : Controller
{
    [HttpPost]
    public IActionResult Register(User user)
    {
        if (ModelState.IsValid)
        {
            // Logic for registering the user
            return RedirectToAction("Success");
        }
        return View(user);
    }
}
  1. View (Register.cshtml):
@model User

<form method="post">
    <label for="Username">Username</label>
    <input type="text" name="Username" id="Username" />
    @Html.ValidationMessageFor(model => model.Username)

    <label for="Email">Email</label>
    <input type="text" name="Email" id="Email" />
    @Html.ValidationMessageFor(model => model.Email)

    <label for="Password">Password</label>
    <input type="password" name="Password" id="Password" />
    
    <label for="ConfirmPassword">Confirm Password</label>
    <input type="password" name="ConfirmPassword" id="ConfirmPassword" />
    @Html.ValidationMessageFor(model => model.ConfirmPassword)

    <button type="submit">Register</button>
</form>

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

এখানে, ModelState.IsValid চেক করে দেখে যে সমস্ত ভ্যালিডেশন সঠিকভাবে সম্পন্ন হয়েছে কিনা। যদি কোনো ভুল থাকে, তাহলে ফর্মটি পুনরায় ভ্যালিডেশন সহ রেন্ডার হবে।


সারাংশ

Data Annotations এর মাধ্যমে ASP.Net অ্যাপ্লিকেশনগুলোতে সহজে ডেটা ভ্যালিডেশন করা যায়। এটি ক্লায়েন্ট-সাইড এবং সার্ভার-সাইড ভ্যালিডেশন সমর্থন করে, এবং ডেভেলপারদের জন্য কার্যকরীভাবে সঠিক ডেটা ইনপুট নিশ্চিত করতে সহায়ক। Data Annotations ব্যবহার করে একটি মডেল ক্লাসে ভ্যালিডেশন কনস্ট্রেইন্ট যোগ করা সহজ, যা অ্যাপ্লিকেশনের ডেটা ইন্টিগ্রিটি বজায় রাখতে সাহায্য করে।

Content added By
Promotion